var Registro = require('./model');
var Empresa = require('./model');
var Persona = require('./model');
var Telefono = require('./model');
var Direccion = require('./model');


/**


 * esta es la capa de persistencia
 * si bien el save es trivial por la compatibilidad de js
 * el recuperar implica recuperar un objeto del mismo tipo del q se persistio
 */

db = require('mongoskin').db('localhost:27017/test');

var ODM = function(){
	//configuro la conexion
//	var db = require('mongoskin').db('localhost:27017/test');
};
//var ODM = new Object(); usar el q prefieran

ODM.prototype.getAPersonaById=function(){
	db.collection('boludez').findOne({id:2}, function(err, result) {
	   console.log(result);
	});
};

ODM.prototype.getAPersonaByName=function(aName){
	db.collection('boludez').findOne({nombre: aName}, function(err, result) {
		var persona = new Persona(result.nombre, result.telefonos, result.direcciones);
		console.log(persona);
		console.log(persona.getNombre());
		
//		return persona;
		 db.close();
		});
};

ODM.prototype.save=function(aRegistro){
	db.collection('boludez').save(aRegistro, function(err, result) {
	    if (err) throw err;
	    if (result) console.log('Added!');
	    db.close();
	});
};

ODM.prototype.getObjAtributes = function getMembers(obj) {
	var members = new Array();
	var i = 0;

	for (var member in obj) {
		members[i] = member;
		i++;
	};

	return members.sort();
};

//this.prototype.inflateObject = function inflate(arrayDeAtributos) {
//	var myObj = new Object();
//	for ( var atributo in arrayDeAtributos) {
//		myObj.atributo=valueOf(atributo);
//	}
//	return myObj;
//};

ODM.prototype.getAPersonaByName2=function(aName){
	db.collection('boludez').findOne({casa: aName}, function(err, result) {
		var retAtributes = this.getObjAtributes(result);
		
		
		
		return result;
		db.close;
		});
	
};







//console.log(getMembers(b));
//var nnn =  odm.getAPersonaByName2("telefono");
//odm.save(b);
//console.log(nnn);

module.exports = ODM;